# 多态
# 同一种行为具有不同的表现形式
# 前提：继承关系，重写
class Animals(object):
    """父类：动物类"""
    def shout(self):
        print("Animals shouted")

class Cat(Animals):
    """子类：猫"""
    def shout(self):
        print("Cat shouted")

class Dog(Animals):
    """子类：狗"""
    def shout(self):
        print("Dog shouted")

cat = Cat()
cat.shout()

dog = Dog()
dog.shout()

# 多态性：一种调用方式 不同的执行结果
def test(obj):
    obj.shout()

test(dog)
test(cat)
test(Animals())

